package com.ruoyi.smartai.service;

import org.quartz.Job;
import org.quartz.JobDataMap;

public interface IDynamicQuartzService {


    /**
     * 动态添加任务
     *
     * @param jobName        任务名称
     * @param jobGroup       任务组
     * @param triggerName    触发器名称
     * @param triggerGroup   触发器组
     * @param jobClass       任务类
     * @param cronExpression Cron 表达式
     * @param jobDataMap     任务参数
     */
    public void addJob(String jobName, String jobGroup, String triggerName, String triggerGroup,
                       Class<? extends Job> jobClass, String cronExpression, JobDataMap jobDataMap);


    /**
     * 动态删除任务
     *
     * @param jobName  任务名称
     * @param jobGroup 任务组
     */
    public void deleteJob(String jobName, String jobGroup);

    /**
     * 动态更新任务
     *
     * @param jobName        任务名称
     * @param jobGroup       任务组
     * @param triggerName    触发器名称
     * @param triggerGroup   触发器组
     * @param cronExpression Cron 表达式
     */
    public void updateJob(String jobName, String jobGroup, String triggerName, String triggerGroup, String cronExpression);

    public boolean checkJobExists(String jobName, String jobGroup);

}
